﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;

using System.Text;
using System.Windows.Forms;
using Itegracion.Framework.Forms;
using System.Text.RegularExpressions;

namespace Itegracion.iAlmacen.Forms
{
    public partial class fmPersona : fmMantenimiento
    {
        public fmPersona()
        {
            InitializeComponent();
            Titulo = "Administración de Personas y Almacenes";
            Subtitulo = "Gestiona datos de Personas y Almacenes";
        }

        protected override void OnAddFields(DataGridView listado, ref ucEdicion propiedades)
        {
            listado
                .AddTextBoxColumn("ID",50)
                .AddTextBoxColumn("Tipo", 150)
                .AddTextBoxColumn("Nombre", 200)
                .AddTextBoxColumn("Direccion", 200)
                .AddTextBoxColumn("RUC", "docId", 80)
                .AddTextBoxColumn("Telefonos", 200);

            propiedades = new ucPersona();
        }
        protected override void OnLoadData(DataGridView listado)
        {
            _("Itegracion.iAlmacen", "Persona", "TraerListado")
                .Out(listado);
            _("Itegracion.iAlmacen", "Constante", "TraerCombo", new Element("tipo", "TipoEntidad"))
                .Out((this.propiedades as ucPersona).cbTipo);
        }
        protected override void OnEdit(string id, DataGridViewCell cell, ucEdicion propiedades)
        {
            ucPersona uc = (ucPersona)propiedades;
            _("Itegracion.iAlmacen", "Persona", "Traer", cell)
                .Out(uc.tbID, uc.tbNombre, uc.tbDireccion, uc.tbRUC, uc.tbTelefono, uc.cbTipo);
        }
        protected override void OnNew(ucEdicion propiedades)
        {
        }
        protected override bool AreDataValid(ModoMantenimiento modo, ucEdicion propiedades)
        {
            ucPersona uc = (ucPersona)propiedades;
            if (!Regex.IsMatch(uc.tbNombre.Text, @"^[a-zA-Z ,]+$"))
                return Error(uc.tbNombre, "Por favor, Ingrese un Nombre correcto. Ejemplo: Jose Alejandro Vega Castro");

            return true;
        }
        protected override void OnSave(object id, ModoMantenimiento modo, ucEdicion propiedades)
        {
            ucPersona uc = (ucPersona)propiedades;
            Element rpta = new Element();
            if (modo == ModoMantenimiento.Nuevo)
            {
                _("Itegracion.iAlmacen", "Persona", "Insertar", uc.tbID, uc.tbNombre, uc.tbDireccion, uc.tbRUC, uc.tbTelefono, uc.cbTipo)
                    .Out(rpta);
            }
            if (modo == ModoMantenimiento.Edicion)
            {
                _("Itegracion.iAlmacen", "Persona", "Modificar", uc.tbID, uc.tbNombre, uc.tbDireccion, uc.tbRUC, uc.tbTelefono, uc.cbTipo)
                    .Out(rpta);
            }
        }
        protected override bool OnDelete(string id, DataGridViewCell cell)
        {
            Element rpta = new Element();
            _("Itegracion.iAlmacen", "Persona", "Eliminar", cell)
                .Out(rpta);
            return true;
        }
    }
}
